package net.ads.udf;

import org.apache.hadoop.hive.ql.exec.UDF;
import org.lionsoul.ip2region.DbConfig;
import org.lionsoul.ip2region.DbSearcher;

import java.util.HashMap;
import java.util.Map;

public class ParseIpToRegion2 extends UDF {
    public Map<String,String> evaluate(String ipStr) throws Exception{
        //定义集合
        Map<String,String> map=new HashMap<String,String>();

        //1.DBSearch对象
        DbSearcher dbSearcher=new DbSearcher(
                new DbConfig(),
//                "ymx-warehouse/src/main/resources/ip2region.db"
                "/opt/module/ip2region.db"
        );

        //2.查找
        String region=dbSearcher.binarySearch(ipStr).getRegion();

        //3.解析
        String[] split=region.split("\\|");
        map.put("country",split[0]);
        map.put("area",split[1]);
        map.put("province",split[2]);
        map.put("city",split[3]);
        map.put("isp",split[4]);

        return map;
    }

    public static void main(String[] args) throws Exception {
        System.out.println(new ParseIpToRegion2().evaluate("218.68.181.92"));
    }
}
